/************************************************************************

								Heroes IV
					  Copyright 2000, The 3DO Company

	------------------------------------------------------------------
  						       dialog_tree_of_knowledge.h

	$Header: /game/dialog_tree_of_knowledge.h $

	$NoKeywords: $

 ************************************************************************/

#ifndef DIALOG_TREE_OF_KNOWLEDGE_H_INCLUDED
#define DIALOG_TREE_OF_KNOWLEDGE_H_INCLUDED

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <vector>
#include "bitmap_group_ptr.h"
#include "game_window.h"
#include "button_group.h"

enum t_skill_type;
struct t_skill;
class t_player;
class t_button;
class t_creature_stack;
class t_creature_select_window;
class t_hero;
class t_single_use_object;
class t_text_window;
class t_army;

class t_dialog_tree_of_knowledge : public t_window
{
public:
	t_dialog_tree_of_knowledge( t_window* parent );

	void init_dialog( std::vector<t_hero*> const& heroes, std::string const& name_text, std::string const& text, std::string const& rejected_text,
                    t_window* parent, t_single_use_object const& object, t_army* army, int cost_type);

	std::vector<t_hero *>       get_selected_heroes();
	std::vector<int>            get_gained_experience();
    
protected:

	t_bitmap_group_ptr          m_bitmaps_ptr;
	std::vector<t_hero*>        m_selected_heroes;
	std::vector<int>            m_experience_gained;
	t_creature_select_window*   m_hero_selection_window;
	t_button*                   m_buy_button;
	t_text_window*              m_cost_window_ptr;
	int						    m_current_cost;
	t_player *			        m_player_ptr;
	int						    m_player_funds;
	int						    m_cost_type;
    t_single_use_object const*  m_parent_object;
    
    void selection_change( t_creature_select_window*, t_creature_stack* );
    void buy_clicked( t_button* button );
    void close_clicked( t_button* button );
};

#endif // DIALOG_TREE_OF_KNOWLEDGE_H_INCLUDED

